import { shopSsoRequestClient } from '../shop-request';

export namespace ShopAuthApi {
  /** 登录结果 */
  export interface LoginResultVo {
    token: string; // token
    expires_time: number; // 失效时间（后端返回的字段名）
    userinfo: any; // 用户信息
    site_id: number; // 站点ID（后端返回的字段名）
    site_info: any; // 站点信息（后端返回的字段名）
    userrole: any; // 用户角色信息
  }

  /** 认证请求参数 */
  export interface AuthRequest {
    Authorization: string;
    'site-id': number;
  }
}

/**
 * 通过请求头进行认证
 */
export function loginByHeader(siteId: number, groupId?: number): Promise<ShopAuthApi.LoginResultVo> {
  const headers: Record<string, any> = {
    'site-id': siteId,
  };

  if (groupId) {
    headers['group-id'] = groupId;
  }

  return shopSsoRequestClient.post('/sso/auth/login-by-header', {}, {
    headers,
  });
}
